package com.heatup.apt.model.company;

import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;


import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;

/**
 *
 * 企业员工表
 *
 */
@TableName("company_staff")
public class CompanyStaff implements Serializable {

	@TableField(exist = false)
	private static final long serialVersionUID = 1L;

	/** 员工ID */
	@TableId
	private Long id;

	/** 企业ID */
	@TableField(value = "company_id")
    private Long companyId;

	/** 用户ID */
	@TableField(value = "user_id")
	private Integer userId;

	/** 员工姓名 */
	private String name;

	/** 员工手机 */
	private String mobile;

	/** (默认初始)余额 */
	private BigDecimal amount;

	/** 是否修改每月限额(0是 1否) */
	@TableField(value = "is_monthly_limit")
	private Integer isMonthlyLimit;

	/** 每月限额 */
	@TableField(value = "monthly_limit")
	private BigDecimal monthlyLimit;

	/** 是否修改购买限制(0是 1否) */
	@TableField(value = "is_buy_type_limit")
	private Integer isBuyTypeLimit;

	/** 团课限制(0不允许 1允许) */
	@TableField(value = "limit_team_course")
	private Integer limitTeamCourse;

	/** 私教限制(0不允许 1允许) */
	@TableField(value = "limit_secret_course")
	private Integer limitSecretCourse;

	/** 檬营限制(0不允许 1允许) */
	@TableField(value = "limit_camp_course")
	private Integer limitCampCourse;

	/** 自助限制(0不允许 1允许) */
	@TableField(value = "limit_self_course")
	private Integer limitSelfCourse;

	/** 会员限制(0不允许 1允许) */
	@TableField(value = "limit_vip")
	private Integer limitVip;

    /** 储值卡限制(0不允许 1允许) */
    @TableField(value = "limit_valued_card")
    private Integer limitValuedCard;

	/** 有效状态(0正常 1冻结 2离职) */
	private Integer status;

	/** 备注 */
	private String remark;

	/** 创建人 */
	@TableField(value = "created_by")
	private Integer createdBy;

	/** 创建时间 */
	@TableField(value = "created_time")
	private Date createdTime;

	/** 更新人 */
	@TableField(value = "updated_by")
	private Integer updatedBy;

	/** 更新时间 */
	@TableField(value = "updated_time")
	private Date updatedTime;

	/** 更新乐观锁 */
	private Integer version;

	/** 绑定微信昵称 */
	@TableField(exist = false)
    private String nickName;

    /** 用户当月剩余可消费金额*/
    @TableField(exist = false)
    private BigDecimal currentLeftAmount;

	/** 员工企业储值卡历史总消费 */
	@TableField(exist = false)
	private BigDecimal totalCostAmount;

	/** 员工企业储值卡当月总消费 */
	@TableField(exist = false)
	private BigDecimal currentCostAmount;

	/** 企业当前余额 */
	@TableField(exist = false)
	private BigDecimal companyCurrentLeftAmount;

	/** 企业当前月度总限额 */
	@TableField(exist = false)
	private BigDecimal companyMonthlyTotalLimit;

	/** 企业是否限制月度总限额 */
	@TableField(exist = false)
	private BigDecimal companyIsMonthlyTotalLimit;

	/** 企业名称 */
	@TableField(exist = false)
	private String companyName;

    /**
     * 是否以会员价格结算 0会员价 1原价
     */
    @TableField(exist = false)
    private Integer vipCheckType;

    /**
     * 以会员价格支付时 是否限制可购买多次 0限制 1不限
     */
    @TableField(exist = false)
    private Integer vipCheckVipPriceOrderMany;


	/**
     * 以会员价格支付时 是否限制可使用门店 0限制 1不限
     */
    @TableField(exist = false)
    private Integer vipCheckStoreLimit;

    /**
     * 限制会员价可使用门店时 可使用的门店列表 以 # 隔开
     */
    @TableField(exist = false)
    private String vipCheckStoreList;

    /**
     * 以会员价格支付时 是否限制以会员价结算的课程类型 0限制 1不限
     */
    @TableField(exist = false)
    private Integer vipCheckCourseTypeLimit;

    /**
     * 是否限制以会员价格结算的团课 0限制 1不限
     */
    @TableField(exist = false)
    private Integer vipCheckCourseTypeTeam;

    /**
     * 是否限制以会员价格结算的私教 0限制 1不限
     */
    @TableField(exist = false)
    private Integer vipCheckCourseTypePrivate;

    /**
     * 是否限制以会员价格结算的檬营 0限制 1不限
     */
    @TableField(exist = false)
    private Integer vipCheckCourseTypeCamp;

    /**
     * 是否限制以会员价格结算的自助 0限制 1不限
     */
    @TableField(exist = false)
    private Integer vipCheckCourseTypeSelf;
    
    /**
     * 是否限制企业支付可用门店(0限制 1不限)
     */
	@TableField(exist = false)
    private Integer isStoreListLimit;
    /**
     * 企业支付限制门店 可用门店 以 # 隔开
     */
	@TableField(exist = false)
    private String storeListLimit;


    public Integer getIsStoreListLimit() {
		return isStoreListLimit;
	}

	public void setIsStoreListLimit(Integer isStoreListLimit) {
		this.isStoreListLimit = isStoreListLimit;
	}

	public String getStoreListLimit() {
		return storeListLimit;
	}

	public void setStoreListLimit(String storeListLimit) {
		this.storeListLimit = storeListLimit;
	}

	public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Long companyId) {
        this.companyId = companyId;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public Integer getIsMonthlyLimit() {
        return isMonthlyLimit;
    }

    public void setIsMonthlyLimit(Integer isMonthlyLimit) {
        this.isMonthlyLimit = isMonthlyLimit;
    }

    public BigDecimal getMonthlyLimit() {
        return monthlyLimit;
    }

    public void setMonthlyLimit(BigDecimal monthlyLimit) {
        this.monthlyLimit = monthlyLimit;
    }

    public Integer getIsBuyTypeLimit() {
        return isBuyTypeLimit;
    }

    public void setIsBuyTypeLimit(Integer isBuyTypeLimit) {
        this.isBuyTypeLimit = isBuyTypeLimit;
    }

    public Integer getLimitTeamCourse() {
        return limitTeamCourse;
    }

    public void setLimitTeamCourse(Integer limitTeamCourse) {
        this.limitTeamCourse = limitTeamCourse;
    }

    public Integer getLimitSecretCourse() {
        return limitSecretCourse;
    }

    public void setLimitSecretCourse(Integer limitSecretCourse) {
        this.limitSecretCourse = limitSecretCourse;
    }

    public Integer getLimitCampCourse() {
        return limitCampCourse;
    }

    public void setLimitCampCourse(Integer limitCampCourse) {
        this.limitCampCourse = limitCampCourse;
    }

    public Integer getLimitSelfCourse() {
        return limitSelfCourse;
    }

    public void setLimitSelfCourse(Integer limitSelfCourse) {
        this.limitSelfCourse = limitSelfCourse;
    }

    public Integer getLimitVip() {
        return limitVip;
    }

    public void setLimitVip(Integer limitVip) {
        this.limitVip = limitVip;
    }

    public Integer getLimitValuedCard() {
        return limitValuedCard;
    }

    public void setLimitValuedCard(Integer limitValuedCard) {
        this.limitValuedCard = limitValuedCard;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(Integer createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public Integer getUpdatedBy() {
        return updatedBy;
    }

    public void setUpdatedBy(Integer updatedBy) {
        this.updatedBy = updatedBy;
    }

    public Date getUpdatedTime() {
        return updatedTime;
    }

    public void setUpdatedTime(Date updatedTime) {
        this.updatedTime = updatedTime;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public BigDecimal getCurrentLeftAmount() {
        return currentLeftAmount;
    }

    public void setCurrentLeftAmount(BigDecimal currentLeftAmount) {
        this.currentLeftAmount = currentLeftAmount;
    }

    public BigDecimal getTotalCostAmount() {
        return totalCostAmount;
    }

    public void setTotalCostAmount(BigDecimal totalCostAmount) {
        this.totalCostAmount = totalCostAmount;
    }

    public BigDecimal getCurrentCostAmount() {
        return currentCostAmount;
    }

    public void setCurrentCostAmount(BigDecimal currentCostAmount) {
        this.currentCostAmount = currentCostAmount;
    }

    public BigDecimal getCompanyCurrentLeftAmount() {
        return companyCurrentLeftAmount;
    }

    public void setCompanyCurrentLeftAmount(BigDecimal companyCurrentLeftAmount) {
        this.companyCurrentLeftAmount = companyCurrentLeftAmount;
    }

    public BigDecimal getCompanyMonthlyTotalLimit() {
        return companyMonthlyTotalLimit;
    }

    public void setCompanyMonthlyTotalLimit(BigDecimal companyMonthlyTotalLimit) {
        this.companyMonthlyTotalLimit = companyMonthlyTotalLimit;
    }

    public BigDecimal getCompanyIsMonthlyTotalLimit() {
        return companyIsMonthlyTotalLimit;
    }

    public void setCompanyIsMonthlyTotalLimit(BigDecimal companyIsMonthlyTotalLimit) {
        this.companyIsMonthlyTotalLimit = companyIsMonthlyTotalLimit;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public Integer getVipCheckType() {
        return vipCheckType;
    }

    public void setVipCheckType(Integer vipCheckType) {
        this.vipCheckType = vipCheckType;
    }

    public Integer getVipCheckVipPriceOrderMany() {
        return vipCheckVipPriceOrderMany;
    }

    public void setVipCheckVipPriceOrderMany(Integer vipCheckVipPriceOrderMany) {
        this.vipCheckVipPriceOrderMany = vipCheckVipPriceOrderMany;
    }

    public Integer getVipCheckStoreLimit() {
        return vipCheckStoreLimit;
    }

    public void setVipCheckStoreLimit(Integer vipCheckStoreLimit) {
        this.vipCheckStoreLimit = vipCheckStoreLimit;
    }

    public String getVipCheckStoreList() {
        return vipCheckStoreList;
    }

    public void setVipCheckStoreList(String vipCheckStoreList) {
        this.vipCheckStoreList = vipCheckStoreList;
    }

    public Integer getVipCheckCourseTypeLimit() {
        return vipCheckCourseTypeLimit;
    }

    public void setVipCheckCourseTypeLimit(Integer vipCheckCourseTypeLimit) {
        this.vipCheckCourseTypeLimit = vipCheckCourseTypeLimit;
    }

    public Integer getVipCheckCourseTypeTeam() {
        return vipCheckCourseTypeTeam;
    }

    public void setVipCheckCourseTypeTeam(Integer vipCheckCourseTypeTeam) {
        this.vipCheckCourseTypeTeam = vipCheckCourseTypeTeam;
    }

    public Integer getVipCheckCourseTypePrivate() {
        return vipCheckCourseTypePrivate;
    }

    public void setVipCheckCourseTypePrivate(Integer vipCheckCourseTypePrivate) {
        this.vipCheckCourseTypePrivate = vipCheckCourseTypePrivate;
    }

    public Integer getVipCheckCourseTypeCamp() {
        return vipCheckCourseTypeCamp;
    }

    public void setVipCheckCourseTypeCamp(Integer vipCheckCourseTypeCamp) {
        this.vipCheckCourseTypeCamp = vipCheckCourseTypeCamp;
    }

    public Integer getVipCheckCourseTypeSelf() {
        return vipCheckCourseTypeSelf;
    }

    public void setVipCheckCourseTypeSelf(Integer vipCheckCourseTypeSelf) {
        this.vipCheckCourseTypeSelf = vipCheckCourseTypeSelf;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("CompanyStaff{");
        sb.append("id=").append(id);
        sb.append(", companyId=").append(companyId);
        sb.append(", userId=").append(userId);
        sb.append(", name='").append(name).append('\'');
        sb.append(", mobile='").append(mobile).append('\'');
        sb.append(", amount=").append(amount);
        sb.append(", isMonthlyLimit=").append(isMonthlyLimit);
        sb.append(", monthlyLimit=").append(monthlyLimit);
        sb.append(", isBuyTypeLimit=").append(isBuyTypeLimit);
        sb.append(", limitTeamCourse=").append(limitTeamCourse);
        sb.append(", limitSecretCourse=").append(limitSecretCourse);
        sb.append(", limitCampCourse=").append(limitCampCourse);
        sb.append(", limitSelfCourse=").append(limitSelfCourse);
        sb.append(", limitVip=").append(limitVip);
        sb.append(", limitValuedCard=").append(limitValuedCard);
        sb.append(", status=").append(status);
        sb.append(", remark='").append(remark).append('\'');
        sb.append(", createdBy=").append(createdBy);
        sb.append(", createdTime=").append(createdTime);
        sb.append(", updatedBy=").append(updatedBy);
        sb.append(", updatedTime=").append(updatedTime);
        sb.append(", version=").append(version);
        sb.append(", nickName='").append(nickName).append('\'');
        sb.append(", currentLeftAmount=").append(currentLeftAmount);
        sb.append(", totalCostAmount=").append(totalCostAmount);
        sb.append(", currentCostAmount=").append(currentCostAmount);
        sb.append(", companyCurrentLeftAmount=").append(companyCurrentLeftAmount);
        sb.append(", companyMonthlyTotalLimit=").append(companyMonthlyTotalLimit);
        sb.append(", companyIsMonthlyTotalLimit=").append(companyIsMonthlyTotalLimit);
        sb.append(", companyName='").append(companyName).append('\'');
        sb.append(", vipCheckType=").append(vipCheckType);
        sb.append(", vipCheckVipPriceOrderMany=").append(vipCheckVipPriceOrderMany);
        sb.append(", vipCheckStoreLimit=").append(vipCheckStoreLimit);
        sb.append(", vipCheckStoreList='").append(vipCheckStoreList).append('\'');
        sb.append(", vipCheckCourseTypeLimit=").append(vipCheckCourseTypeLimit);
        sb.append(", vipCheckCourseTypeTeam=").append(vipCheckCourseTypeTeam);
        sb.append(", vipCheckCourseTypePrivate=").append(vipCheckCourseTypePrivate);
        sb.append(", vipCheckCourseTypeCamp=").append(vipCheckCourseTypeCamp);
        sb.append(", vipCheckCourseTypeSelf=").append(vipCheckCourseTypeSelf);
        sb.append('}');
        return sb.toString();
    }
}
